#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>

typedef int ListDataType;

typedef struct ListNode
{
	ListDataType val;
	struct ListNode* prev;
	struct ListNode* next;
}ListNode;

ListNode* ListNode_init();

void ListPushBack(ListNode* phead, ListDataType x);

void ListNodePrintHead(ListNode* phead);

void ListNodePrintBack(ListNode* phead);

void ListNodePopBack(ListNode* phead);

void ListNodeInsert(ListNode* pos, ListDataType x);

ListNode* FindListNode(ListNode* phead, ListDataType x);

void LiseNodeErase(ListNode* pos);